package org.example.first_demo.Service;


import org.example.first_demo.pojo.User;
import  org.example.first_demo.Repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service // 声明这是一个 Service Bean
public class UserService {

    @Autowired // 自动注入 UserRepository 的实例
    private UserRepository userRepository;

    // 获取所有用户
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    // 根据 ID 获取用户
    public Optional<User> getUserById(Integer id) {
        return userRepository.findById(id);
    }

    // 创建新用户
    public User createUser(User user) {
        return userRepository.save(user);
    }

    // 更新用户
    public User updateUser(Integer id, User userDetails) {
        // 先查找用户是否存在
        User user = userRepository.findById(id)
                .orElseThrow(() -> new RuntimeException("User not found with id: " + id));

        // 更新用户信息
        user.setName(userDetails.getName());
        user.setEmail(userDetails.getEmail());

        // 保存并返回更新后的用户
        return userRepository.save(user);
    }

    // 删除用户
    public void deleteUser(Integer id) {
        // 先查找用户是否存在
        User user = userRepository.findById(id)
                .orElseThrow(() -> new RuntimeException("User not found with id: " + id));

        userRepository.delete(user);
    }
}